package newtank.network.client.handler;

import server.netty.GpcDataPackage;

/**
 * @author lijiahao
 */
public interface DataHandler<T> {

    /**
     * 返序列数据包为具体数据对象类型进行处理
     * @param gpcDataPackage 反向数据包
     * @return 解析对象
     */
    T decodePackage(GpcDataPackage gpcDataPackage);

    /**
     * 处理方法
     * @param gpcDataPackage 反向数据包
     */
    void handle(GpcDataPackage gpcDataPackage);

    /**
     * 支持数据包类型
     * @param gpcDataPackage 反向数据包
     * @return
     */
    boolean support(GpcDataPackage gpcDataPackage);
}
